
// 专门处理权限路由
import { constantRoutes, asyncRoutes } from '@/router'
const state = {
  // 移开时拥有静态路由权限
  routes: constantRoutes // 路由表  表示当前用户所拥有的所有路由的数组
}
const mutations = {
  // 修改routes的mutations
  // plyload是登录成功需要添加的新路由
  setRoutes(state, newRoutes) {
    // 这么写业务不正确
    state.routes = [...constantRoutes, ...newRoutes] // 每次都是在静态路由基础上去加新的路由
  }
}
const actions = {
  // 筛选权限路由
  // 第二个参数为当前用户的所拥有的菜单权限
  // menus:['settings','permission']
  // asyncRoutes所有的动态路由
  // asyncRouter [{path：}]
  filterRoutes(context, menus) {
    // 筛选出动态路由和menus中能够对应上的
    const arr = []
    // item就是标识
    // async是动态路由
    menus.forEach(item => {
      asyncRoutes.forEach(obj => {
        // 找对象中的name属性有咩有和item相等的  找到了筛选出来
        if (obj.name === item) {
          arr.push(obj)
        }
      })
    })
    context.commit('setRoutes', arr)
    return arr // 这里return的作用, state数据是用来显示左侧菜单用的，return 是给addRoutes用的
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
